package com.stardata.liangshisq.tcslmon.service;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.stardata.liangshisq.tcslmon.entity.BaseOrderVo;
import com.stardata.liangshisq.tcslmon.entity.BizBs;
import com.stardata.liangshisq.tcslmon.entity.ProductVo;
import org.jetbrains.annotations.NotNull;

import java.util.List;

/**
 * @author Samson Shu
 * @email shush@stardata.top
 * @date 2020/12/15 22:25
 */
@DS("canyin")
public interface OrderInfoService {
    /**
     * 查询预定单信息
     *
     * @param shopId 归属的店铺ID
     * @return 预订单列表
     */
    @NotNull
    List<BaseOrderVo> queryBooking(@NotNull Long shopId);

    /**
     * 查询制作中订单
     *
     * @param shopId       归属的店铺ID
     * @param needPrepared 是否需要配菜完成的订单
     * @return 制作中订单列表
     */
    @NotNull
    List<BaseOrderVo> queryMaking(@NotNull Long shopId, boolean needPrepared);

    /**
     * 查询等待中信息
     *
     * @param shopId 归属的店铺ID
     * @return 等待中订单列表
     */
    @NotNull
    List<BaseOrderVo> queryWaiting(@NotNull Long shopId);

    /**
     * 查询订单详情
     *
     * @param bsId 订单的营业流水ID
     * @return 订单详情菜品列表
     */
    List<ProductVo> queryDetail(@NotNull Long bsId);

    /**
     * 查询订单备注
     *
     * @param bsId 订单的营业流水ID
     * @return 订单备注信息
     */
    String getOrderRemark(@NotNull Long bsId);

    /**
     * 查询没有同步的数据信息
     *
     * @return 订单列表
     */
    List<BizBs> querySendData(List<Long> bsIds);
}
